SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TMSACA_DIAR_I04]
/*-------------------------------------------------------*/
/*---Empresa              : OFISIS S.A.                --*/
/*---Cliente              : OFISIS                 --*/
/*---Sistema              : Tesoreria  x               --*/
/*---M¸dulo               : Empresa                    --*/
/*---Programa             : Apertura Caja              --*/
/*---			    Individual (Carga)	       --*/
/*---Script               : tmsaba_m.sql               --*/
/*---Nombre SP            : SP_TMSACA_DIAR_I04         --*/
/*---Desarrollado por     : Javier Flores A.           --*/
/*---Fecha Creaci¸n       : 15/07/1999                 --*/
/*---Base Datos           : Microsoft Sql Server       --*/
/*---Versi¸n              : 7.0                        --*/
/*---Invoca a SP          :                            --*/
/*-------------------------------------------------------*/

/*-------------------------------------------------------*/
/*---Modificado 1 por     :                            --*/
/*---Fecha Modificaci¸n   :                            --*/ 
/*---Detalle Modificaci¸n :                            --*/
/*-------------------------------------------------------*/

/*-------------------------------------------------------*/
/*---Comentarios                                       --*/
/*---                                                  --*/
/*---                                                  --*/
/*-------------------------------------------------------*/

/*-------------------------------------------------------*/
/*---Drop Proc SP_TMSACA_DIAR_I04                      --*/
/*---Grant all on SP_TMSACA_DIAR_I04 to public         --*/ 
/*---SP_TMSACA_DIAR_I04                                --*/
/*-------------------------------------------------------*/
 @ISCO_EMPR TD_VC_002, 
 @ISCO_USUA_MODI TD_VC_008_USUA,
 @ISCO_CAJA TD_VC_008
	As
Declare

   @VSAA_CAJA       TD_VC_004,
   @VSMM_CAJA       TD_VC_002,
   @VSDD_CAJA       TD_VC_002,
   @VSAA_CAJA_ANTE  TD_VC_004,
   @VSMM_CAJA_ANTE  TD_VC_002,
   @VSDD_CAJA_ANTE  TD_VC_002,
   @VSTI_SITU       TD_VC_003,
   @CSAA_CAJA       TD_VC_004, 
   @CSMM_CAJA       TD_VC_002, 
   @CSDD_CAJA       TD_VC_002,
   @CNIM_SALD_INIC  TD_NU_016_004, 
   @CNIM_INGR       TD_NU_016_004, 
   @CNIM_EGRE       TD_NU_016_004, 
   @CNUL_CORR_INGR  TD_IN_001, 
   @CNUL_CORR_EGRE  TD_IN_001, 
   @CNUL_CORR_INEG  TD_IN_001,
   @CSTI_SITU       TD_VC_003,
   @CSCO_USUA_CREA  TD_VC_008, 
   @CSCO_USUA_MODI  TD_VC_008,
   @CDFE_USUA_CREA  TD_DT_001,
   @CDFE_USUA_MODI  TD_DT_001, 
   @CDFE_CAJA TD_DT_001, 
   @VNIM_SALD_INIC  TD_NU_016_004

    Create Table #TWSACA_MENS
   ( AA_CAJA  char(4), 
     MM_CAJA  char(2), 
     DD_CAJA char(2),
     IM_SALD_INIC numeric(16,4),
     IM_INGR  numeric(16,4), 
     IM_EGRE  numeric(16,4), 
     UL_CORR_INGR int , 
     UL_CORR_EGRE int, 
     UL_CORR_INEG int, 
     TI_SITU  char(3),
     CO_USUA_CREA char(8),
     CO_USUA_MODI char(8),
     FE_USUA_CREA datetime,
     FE_USUA_MODI datetime,
     FE_CAJA datetime,
   )

 Select @VSAA_CAJA = Max(AA_CAJA), @VSMM_CAJA = MAX(MM_CAJA), @VSDD_CAJA = MAX(DD_CAJA)
 From TMSACA_DIAR
 Where CO_EMPR = @ISCO_EMPR
 And   CO_CAJA = @ISCO_CAJA
 And   TI_SITU = 'ACT'

 If @VSMM_CAJA = '01'
   Begin
     Select @VSMM_CAJA_ANTE = '12'
     Select @VSAA_CAJA_ANTE = @VSAA_CAJA - 1
     Select @VSDD_CAJA_ANTE = '31'
   End
 Else
   Begin
     Select @VSMM_CAJA_ANTE = @VSMM_CAJA - 1
     Select @VSAA_CAJA_ANTE = @VSAA_CAJA
     Select @VSDD_CAJA_ANTE = @VSDD_CAJA - 1
   End

 If Len(@VSMM_CAJA_ANTE) = 1 
    Select @VSMM_CAJA_ANTE = '0'+@VSMM_CAJA_ANTE

 Select @VNIM_SALD_INIC = Isnull(IM_SALD_INIC,0)+ Isnull(IM_INGR,0) - Isnull(IM_EGRE,0)
 From   TMSACA_DIAR
 Where  CO_EMPR = @ISCO_EMPR
 And    CO_CAJA = @ISCO_CAJA
 And    AA_CAJA = @VSAA_CAJA_ANTE
 And    MM_CAJA = @VSMM_CAJA_ANTE

 And    DD_CAJA = @VSDD_CAJA_ANTE

 Declare CU_TMSACA_DIAR_I04_1 Cursor
 For
 Select AA_CAJA, MM_CAJA, DD_CAJA, isnull(IM_SALD_INIC, 0), isnull(IM_INGR,0), isnull(IM_EGRE,0), UL_CORR_INGR,
        UL_CORR_EGRE, UL_CORR_INEG, TI_SITU, CO_USUA_CREA, CO_USUA_MODI, FE_USUA_CREA, FE_USUA_MODI,
        FE_CAJA
 From   TMSACA_DIAR
 Where  CO_EMPR = @ISCO_EMPR
 And    CO_CAJA = @ISCO_CAJA

 Open CU_TMSACA_DIAR_I04_1
 Fetch CU_TMSACA_DIAR_I04_1 INTO @CSAA_CAJA, @CSMM_CAJA, @CSDD_CAJA, @CNIM_SALD_INIC, @CNIM_INGR, 
                                 @CNIM_EGRE, @CNUL_CORR_INGR, @CNUL_CORR_EGRE, @CNUL_CORR_INEG, @CSTI_SITU,
				 @CSCO_USUA_CREA, @CSCO_USUA_MODI, @CDFE_USUA_CREA, @CDFE_USUA_MODI, @CDFE_CAJA
 While (@@FETCH_STATUS = 0)
   Begin
     If (@@FETCH_STATUS < 0)
        Begin
          RAISERROR 20001 'FIN DE ARCHIVO'
      Close CU_TMSACA_DIAR_I04_1
          Deallocate CU_TMSACA_DIAR_I04_1
          Return
        End

     If @VSAA_CAJA = @CSAA_CAJA and @VSMM_CAJA = @CSMM_CAJA
        Select @CNIM_SALD_INIC = isnull(@VNIM_SALD_INIC,0)

     Insert into #TWSACA_MENS VALUES (@CSAA_CAJA, @CSMM_CAJA, @CSDD_CAJA, @CNIM_SALD_INIC, @CNIM_INGR, 
                                        @CNIM_EGRE, @CNUL_CORR_INGR, @CNUL_CORR_EGRE, @CNUL_CORR_INEG, @CSTI_SITU,
					@CSCO_USUA_CREA, @CSCO_USUA_MODI, @CDFE_USUA_CREA, @CDFE_USUA_MODI, @CDFE_CAJA )

     Fetch CU_TMSACA_DIAR_I04_1 INTO @CSAA_CAJA, @CSMM_CAJA, @CSDD_CAJA, @CNIM_SALD_INIC, @CNIM_INGR, 
                                   @CNIM_EGRE, @CNUL_CORR_INGR, @CNUL_CORR_EGRE, @CNUL_CORR_INEG, @CSTI_SITU,
				   @CSCO_USUA_CREA, @CSCO_USUA_MODI, @CDFE_USUA_CREA, @CDFE_USUA_MODI, @CDFE_CAJA 	
      
   End

  Close CU_TMSACA_DIAR_I04_1
  Deallocate CU_TMSACA_DIAR_I04_1

Select AA_CAJA, MM_CAJA, DD_CAJA, isnull(IM_SALD_INIC,0), isnull(IM_INGR,0), isnull(IM_EGRE,0), UL_CORR_INGR,
       UL_CORR_EGRE, UL_CORR_INEG, TI_SITU, CO_USUA_CREA, CO_USUA_MODI, FE_USUA_CREA, 
       FE_USUA_MODI, FE_CAJA
From #TWSACA_MENS

Return

/*------------------------------ FIN ---------------------------------*/


GO
